package sort;

import com.sun.istack.internal.NotNull;

public interface BaseSort<T extends Comparable> {

    default void sort(T[] arr){
        if(needSort(arr)){
            safeSort(arr);
        }
    };

    static boolean needSort(Object[] arr){
        if(arr == null || arr.length < 2){
            return false;
        }else{
            return true;
        }
    }

    @NotNull
    void safeSort(T[] arr);

    static void swap(Object[] arr, int i, int j){
        if (i == j){
            return;
        }else{
            Object temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }

}
